package com.meeting.meetingroom_api.service;

import com.meeting.meetingroom_api.dto.BookingDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface MaintenanceRefundService {
    
    /**
     * 处理即将到期的维护中会议室的预订退款
     * 自动检查维护中会议室的未来预订，如果距离开始时间小于24小时，自动全额退款
     */
    void processMaintenanceRefunds();
    
    /**
     * 检查特定会议室的维护状态冲突
     * @param roomId 会议室ID
     * @return 需要退款的预订列表
     */
    List<BookingDto> checkMaintenanceConflicts(Integer roomId);
    
    /**
     * 手动处理特定预订的维护退款
     * @param bookingId 预订ID
     * @param reason 退款原因
     * @return 处理结果
     */
    BookingDto processMaintenanceRefund(Integer bookingId, String reason);
    
    /**
     * 获取所有需要维护退款的预订
     * @param pageable 分页参数
     * @return 需要退款的预订分页列表
     */
    Page<BookingDto> getPendingMaintenanceRefunds(Pageable pageable);
} 